#pragma once

namespace umtl
{
	typedef unsigned char uint8;
	typedef unsigned long int uint32;

	typedef struct
	{
		uint32 total[2];
		uint32 state[4];
		uint8 buffer[64];
	}
	md5_context;

	void md5_starts( md5_context *ctx );
	void md5_update( md5_context *ctx, uint8 *input, uint32 length );
	void md5_finish( md5_context *ctx, uint8 digest[16] );

	void get_md5( uint8 *input, uint32 size, uint8 out[16] );
}


